package com.yunxi.sto.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.web.LoginInfo;
import com.yunxi.dealer.pojo.PartnerVO;
import com.yunxi.sto.pojo.*;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 * 车辆出库计划单 服务类
 * </p>
 *
 * @author caoYong
 * @since 2019-05-20
 */
public interface StoStockOutPlanDubboService {

    StoStockOutPlanVO getById(String id) throws InvocationTargetException, IllegalAccessException;

    StoStockOutPlanVO getDetail(String id) throws Exception;

    void saveOrUpdate(StoStockOutPlanVO stoStockOutPlanVO) throws Exception;

    void removeById(String id);

    void delAndReset(List<String>list,Integer isDel,String userId) throws Exception;

    void print(String stoStockOutPlanId);

    PageInfo vinList(PartnerVO vo,Integer pageNum ,Integer pageSize);

    void beginStockOut(StoStockScanVO stoStockScanVO) throws Exception;

    void complete(StoStockScanVO stoStockScanVO, LoginInfo loginInfo) throws Exception;

    void replace(StoStockOutPlanReplaceVO stoStockOutPlanReplaceVO,String userId) throws Exception;

    void setDriver(StoStockOutDriverVO stoStockOutDriverVO,String userId) throws Exception;

    List<StoStorageStaffDriverVO> getDriver(String planInOutDate) throws Exception;

    List<StoStockOutPlanVO> getOutPlanByRfid(String rfid) throws Exception;

    PageInfo<StoStockOutPlanVO> findPageByVO(StoStockOutPlanVO stoStockOutPlanVO, Integer pageNum, Integer pageSize) throws InvocationTargetException, IllegalAccessException;

    PageInfo<StoStockOutPlanLateVO> lateStockOutPlan(StoStockOutPlanLateVO stoStockOutPlanLateVO, Integer pageNum, Integer pageSize) throws Exception;

    List<StoStockOutPlanVO> export(StoStockOutPlanVO stoStockOutPlanVO) throws Exception;

    List<StoStockOutPlanVO> planListByVin(String vin,String rfid)throws Exception;

}
